x86 numa: Fix i386 to not do bogus mfn_to_virt(alloc_boot_pages(...))
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 25 Feb 2010 21:00:54 +0000 (21:00 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 25 Feb 2010 21:00:54 +0000 (21:00 +0000)
Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/numa.c

index 1261c4f292e7432d5a00e73c9c274a561963cf31..75d4be1d202035f64ef71bfb9aa1eb4bedc7cb5a 100644 (file)
@@ -30,7 +30,7 @@ struct node_data node_data[MAX_NUMNODES];
 
 /* Mapping from pdx to node id */
 int memnode_shift;
-static typeof(*memnodemap) _memnodemap[2];
+static typeof(*memnodemap) _memnodemap[64];
 unsigned long memnodemapsize;
 u8 *memnodemap;
 
@@ -90,6 +90,7 @@ static int __init populate_memnodemap(const struct node *nodes,
 
 static int __init allocate_cachealigned_memnodemap(void)
 {
+#ifndef __i386__
        unsigned long size = PFN_UP(memnodemapsize * sizeof(*memnodemap));
        unsigned long mfn = alloc_boot_pages(size, 1);
 
@@ -108,6 +109,13 @@ static int __init allocate_cachealigned_memnodemap(void)
        memnodemapsize = size / sizeof(*memnodemap);
 
        return 0;
+#else
+       printk(KERN_ERR
+              "Memory to Node hash needs %lu entries, got only %zu\n",
+              memnodemapsize, ARRAY_SIZE(_memnodemap));
+       memnodemapsize = 0;
+       return -1;
+#endif
 }
 
 /*